import { createApp } from 'vue'

import App from './App.vue'

// 注入SVG图标
import 'virtual:svg-icons-register'

// Unocss 是一个基于模板的无用 CSS 移除工具。自动从项目中删除未使用的 CSS 样式，以减少文件大小和加快加载速度。
import 'uno.css'

// 状态管理器
import { createPinia } from 'pinia'
// 持久化
import pinia from '@/store/pinia'

// 引入自定义指令
import { setupDirective } from '@/directive'

// 引入路由
import router from '@/router'

// 全局样式初始化样式
// import '@/styles/normalize.scss'

// 引入 ui 样式
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import zhCn from 'element-plus/es/locale/lang/zh-cn'

import Avue from '@smallwei/avue'
import '@smallwei/avue/lib/index.css'

import NProgress from 'nprogress'
import 'nprogress/nprogress.css'
NProgress.configure({
	showSpinner: false,
})

// 引入响应式布局
import { initRem } from '@/utils/rem'

import { store } from '@/store'

import VxeUI from 'vxe-pc-ui'
import 'vxe-pc-ui/lib/style.css'
import VxeUITable from 'vxe-table'
import 'vxe-table/lib/style.css'
// 导入默认的语言
import zhCN from 'vxe-pc-ui/lib/language/zh-CN'

VxeUI.setI18n('zh-CN', zhCN)
VxeUI.setLanguage('zh-CN')

import { i18n } from '@/i18n/index.js'

// 初始化响应式字体大小
initRem()

// 创建应用实例
const app = createApp(App)

// 初始化 Pinia
const piniaInstance = createPinia()
app.use(piniaInstance)
app.use(pinia)

// 初始化路由
app.use(router)

// 初始化其他插件
app.use(ElementPlus, { locale: zhCn })
app.use(Avue)
app.use(i18n)
app.use(VxeUI)
app.use(VxeUITable)

// 初始化用户数据
const userStore = store.useUserStore()
userStore.initializeUserData()

// 全局注册 自定义指令(directive)
setupDirective(app)

// 初始化 Tabs 数据
const tabsStore = store.useTabsStore()
tabsStore.initTabs()

// 挂载应用
app.mount('#app')

// 使用方式
// v-hasPerm="['dataMetrics:page']

// 修改路由初始化逻辑
router.isReady().then(() => {
	const currentPath = router.currentRoute.value.path
	console.log('当前路由路径:', currentPath)
})
